#ifndef GAMEPROCESS_H
#define GAMEPROCESS_H

#include <boost\shared_ptr.hpp>

class GameProcess
{
public:
	GameProcess(void);
	~GameProcess(void);
	bool dead(void) const;
	bool active(void) const;
	void setActive(const bool active);
	void kill(void);
	boost::shared_ptr<GameProcess> getNext(void) const;
	void setNext(boost::shared_ptr<GameProcess> process);
	virtual void update(const unsigned long elapsedTime);
protected:
	bool mbDead;
	bool mbActive;
	boost::shared_ptr<GameProcess> mpNext;
};

typedef boost::shared_ptr<GameProcess> GameProcessPtr;

#endif